package com.service.impl;

import com.constant.Constant;
import com.controller.CourseTypeCtl;
import com.dao.CourseMapper;
import com.dao.CourseTypeMapper;
import com.entity.Course;
import com.entity.CourseType;
import com.exception.ServiceException;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.service.CourseTypeService;
import com.util.AjaxResult;
import com.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
public class CourseTypeServiceImpl implements CourseTypeService{


    @Autowired
    CourseTypeMapper courseTypeMapper;
    @Autowired
    CourseMapper courseMapper;

    //    后台显示课程分类名字 pj
    public AjaxResult showBackName(String id){
        int i= StringUtil.getInt(id);
        CourseType courseType = courseTypeMapper.showBackName(i);
        AjaxResult result=new AjaxResult(true,"查询成功",courseType);
        return result;
    }

//    查询当前类下的子分类 pj
//    @Override
//    public PageInfo<CourseType> findBackCourseType(int dadId,int pageno) {
//        PageHelper.startPage(pageno, 2);
//        List<CourseType> list = courseTypeMapper.findBackCourseType(dadId);
//        PageInfo<CourseType> info=new PageInfo<CourseType>(list);
//        return info;
//    }
//修改分类 潘军
    @Override
    public int modifyCourseTypeName(CourseType courseType) {
        int i = courseTypeMapper.modifyCourseTypeName(courseType);
        return i;
    }

    @Override
    public AjaxResult addBackType(CourseType courseType) {
        AjaxResult result=new AjaxResult(false,"查询成功",null);
        int i = courseTypeMapper.addBackType(courseType);
        if(0==i){
            result.setMsg("查询失败");
        }return  result;
    }

    //后台修改用户状态禁用-启用 pj
    @Override
    public AjaxResult toggleStatus(Integer id, Integer status) {
        AjaxResult result=new AjaxResult(false,"查询成功",null);
//        int i= StringUtil.getInt(id);
        if(0==courseTypeMapper.toggleStatus(id,status)){
            throw new ServiceException("切换失败");
        }return result;
    }
    //李奇洲
    @Override
    public Map selectAllCoursesType() {
        List<CourseType> courseTypes = courseTypeMapper.selectAllCourseType();
        List<Course> courses = courseMapper.selectAllCourse();
        Map map=new HashMap();
        map.put("courseTypes",courseTypes);
        map.put("courses",courses);
        return map;
    }
    //潘军
    @Override
    public List<CourseType> selectAllCourseType() {
        List<CourseType> courseTypes = courseTypeMapper.selectAllCourseType();
        return courseTypes;
    }
    //李奇洲
    @Override
    public List<List<CourseType>> selectTypeByParentId(Integer id) {
        List<CourseType> courseTypes = courseTypeMapper.selectAllCourseType();
                //courseTypeMapper.selectTypeAndCourceByParentId(id);
        List<List<CourseType>> list = new ArrayList<>();
        for (CourseType type: courseTypes){
            list.add(courseTypeMapper.selectTypeAndCourceByParentId(type.getId()));
        }
        return list;
    }

//    @Override
//    public PageInfo<CourseType> findBackCourseType(Integer page, Integer parent_id) {
//        PageHelper.startPage(page,Constant.PAGE_SIZE);
//        List<CourseType> list = courseTypeMapper.findBackCourseType(parent_id);
//        PageInfo<CourseType> info=new PageInfo<CourseType>();
//        if(list!=null){
//            info.setList(list);
//        }else{
//            throw new ServiceException("查询失败");
//        }
//        return  info;
//    }

    @Override
    public PageInfo<CourseType> findBackCourseType(Integer page, Integer parent_id) {
        List<CourseType> list = null;
        if(parent_id == 0 ){
            PageHelper.startPage(page,Constant.PAGE_SIZE);
            list = courseTypeMapper.findBackCourseTypeA();
            return  new PageInfo<CourseType>(list);
        }
        PageHelper.startPage(page,Constant.PAGE_SIZE);
        list = courseTypeMapper.findBackCourseType(parent_id);
        return new PageInfo<CourseType>(list);
    }



    @Override
    public PageInfo<CourseType>  findBackCourseTypeA(Integer parent_id) {
        List<CourseType> list1 = null;
        if(parent_id ==0){
            List<CourseType> list = courseTypeMapper.findBackCourseTypeA();
            return new PageInfo<CourseType>(list);
        }
        return new PageInfo<CourseType>(list1);
    }



    @Override
    public List<CourseType>  findBackCourseTypeAll() {
        return courseTypeMapper.findBackCourseTypeA();
    }

    //
}
